#include "PrivateBus_port.h"
#include "ModBusToPrivateBus_CRC.h"

/*
 * 从机私有协议需要提供的外部接口（功能部分）
 * 需要实现这些函数，库内部需要用到
 * 可以通过函数指针提供，也可以通过一下接口函数实现提供
 * 目前只支持单一主机或者单一从机，多主机多从机需要重新封装库。
 *
 * 外设：
 * ADC数据采集数据接口
 * INT：开启关闭外部中断接口
 * UART：串口发送数据接口
 * BUSY：总线状态读取函数
 *
 * */

uint8_t *PrivateBus_Uart_Tx_Buffer=NULL;
uint16_t PrivateBus_Uart_Tx_Buffer_Len;
/**
  * @bried  串口发送函数接口
  * @note   调用后直接发送，主机从机都是这个接口。
  * @param  None
  * @retval None
  */
void PB_Send_Date(uint8_t* _data,uint16_t _len){
    Uart1_Send(_data,_len);
}
/**
  * @bried  设置控制LED状态灯状态
  * @note   None
  * @param  None
  * @retval None
  */
void PB_Set_Mcu_Led(PB_LED_STATE _state){
    LED_MCU_SET((_state==PB_LED_STATE_ON)?LED_SATE_ON:LED_SATE_OFF);
}
/**
  * @bried  设置控制LED总线灯状态
  * @note   None
  * @param  None
  * @retval None
  */
void PB_Set_Bus_Led(PB_LED_STATE _state){
    LED_BUS_SET((_state==PB_LED_STATE_ON)?LED_SATE_ON:LED_SATE_OFF);
}
/** 
  * @bried  硬件CRC校验
  * @note   None
  * @param  None
  * @retval None
  */
void PB_Get_CRC(uint8_t* _data,uint16_t _len,uint8_t* _res_bit_l,uint8_t* _res_bit_h){
    GetModbusCRC16(_data,_len,_res_bit_l,_res_bit_h);
}


